
/* 配置主列表表头 */
const tableConfig = (k) => {

  /* 督办得分 */
  let superviseGrade = {
    // 总经理-不可编辑
    gm: [{
      title: '督办得分(参考)[-10,10]',
      width: 90,
      align: 'center',
      dataIndex: 'superviseGrade'
    }],

    // 绩效汇总评分-可编辑
    kpi: [{
      title: '督办得分[-10,10]',
      width: 170,
      align: 'center',
      dataIndex: 'superviseGrade',
      scopedSlots: { customRender: 'superviseGrade' },
    }]
  };

  // 表头
  let header = [
    {
      title: '被评分部门',
      width: 120,
      align: 'center',
      //fixed: 'left',
      dataIndex: 'indexDepartName'   // 对应后台接口返回的字段
    }, {
      title: '责任人',
      width: 100,
      align: 'center',
      //fixed: 'left',
      dataIndex: 'indexScorerName'
    },
    {
      title: '排名',
      width: 60,
      align: 'center',
     // fixed: 'left',
      dataIndex: 'sortNum'
    },
    {
      title: '评分指标',
      width: 90,
      align: 'center',
      //fixed: 'left',
      dataIndex: 'indexValueName'
    }, {
      title: '部门总分',
      width: 90,
      align: 'center',
      //fixed: 'left',
      dataIndex: 'totalGrade'
    }, {
      title: '双向评分平均分(参考)',
      width: 90,
      align: 'center',
      //fixed: 'left',
      dataIndex: 'avegGrade'
    }, {
      title: '双向评分最高分(参考)',
      width: 90,
      align: 'center',
    //  fixed: 'left',
      dataIndex: 'maxGrade'
    }, {
      title: '双向评分最低分(参考)',
      width: 90,
      align: 'center',
     // fixed: 'left',
      dataIndex: 'minGrade'
    },

    // 插入督办得分
    ...superviseGrade[k],

    {
      title: '评分[-10,10]',
      width: 100,
      align: 'center',
      dataIndex: 'grade',
      scopedSlots: { customRender: 'grade' },
    }, {
      title: '评分意见',
      width: 240,
      align: 'center',
      dataIndex: 'scoreComments',
      scopedSlots: { customRender: 'scoreComments' },
    }, {
      title: '操作',
      width: 80,
      align: 'center',
      //fixed: 'right',
      dataIndex: 'operation',
      scopedSlots: { customRender: 'operation' }
    }
  ];

  /*// 将 1~12 月添至表头
  for (let i = 1; i <= 12; i++) {
    let monthStr = (i < 10) ? ('0' + i) : i;

    // 每次信息将月份信息添加至 header 数组倒数第二个
    header.splice(header.length - 1, 0, {
      title: i + '月',
      width: 60,
      align: 'center',
      dataIndex: 'm' + monthStr,
      scopedSlots: { customRender: 'm' + monthStr }
    });
  }*/

  return {
    scroll: { y: 500 },
    columns: header,        // 表头信息
    dataSource: [],         // 表格数据，通过接口拿到，默认空数组
  };
};



/* 参考评分弹窗表头信息 */
const tableReference = () => {
  let header = [
    {
      title: '评分指标',
      align: 'center',
      dataIndex: 'indexValueName'
    },
    {
      title: '评分部门',
      align: 'center',
      dataIndex: 'indexExecutorDepartName'
    },
    {
      title: '评分人',
      align: 'center',
      dataIndex: 'indexExecutorName'
    },
    // {
    //   title: '平均分',
    //   align: 'center',
    //   dataIndex: 'avegGrade'
    // }
    {
      title: '意见',
      align: 'center',
      width: 240,
      dataIndex: 'scoreComments',
      scopedSlots: { customRender: 'scoreComments' },
    },
  ];

  // 将 1~12 月添至表头
  for (let i = 1; i <= 12; i++) {
    let monthStr = (i < 10) ? ('0' + i) : i;

    header.push({
      title: i + '月',
      align: 'center',
      dataIndex: 'm' + monthStr,
      scopedSlots: { customRender: 'm' + monthStr }
    });
  }

  return {
    // x 横坐标 | y 竖坐标
   // scroll: { x: true },
    columns: header,        // 表头信息
    dataSource: [],         // 表格数据，通过接口拿到，默认空数组
  };
};


/* 绩效考核记录参考 */
const tableKpiScore = () => {
  let header = [
    {
      title: '月份',
      align: 'center',
      width:50,
      dataIndex: 'month'
    },
    {
      title: '得分',
      align: 'center',
      width:70,
      dataIndex: 'score'
    }
  ];

  return {
    columns: header,        // 表头信息
    dataSource: [],         // 表格数据，通过接口拿到，默认空数组
  };
};

/* 单月评分评价详细弹窗 */
const tableScoreModel = (k,param) => {
  let header = [
    {
      title: '月份',
      align: 'center',
      width:100,
      dataIndex: 'month'
    },
    // {
    //   title: '被评部门',
    //   align: 'center',
    //   dataIndex: 'indexExecutorDepartName'
    // },
    // {
    //   title: '责任人(被评部门)',
    //   align: 'center',
    //   dataIndex: 'indexExecutorName'
    // },
    // {
    //   title: '评分部门',
    //   align: 'center',
    //   dataIndex: 'avegGrade'
    // },
    // {
    //   title: '评分人',
    //   align: 'center',
    //   dataIndex: 'avegGrade'
    // },

    /*{
      title: '双向评分意见',
      align: 'center',
      width:300,
      dataIndex: 'comments',
      scopedSlots: { customRender: 'scoreComments' },
    },*/
    // {
    //   title: '调整记录',
    //   align: 'center',
    //   width: 200,
    //   dataIndex: 'changeReport',
    //   scopedSlots: { customRender: 'hishost' }
    // }
  ];
  if(k==='gm'){
    if(param==='p'){
      header.push({
          title: '总经理重点工作评分意见',
          align: 'center',
          width:300,
          dataIndex: 'comments',
          scopedSlots: { customRender: 'scoreComments' },
        },
        {
          title: '总经理重点工作评分[-10,10]',
          align: 'center',
          width:300,
          dataIndex: 'grade',
          scopedSlots: { customRender: 'grade' },
        })
    }else {
      header.push({
        title: '调整记录',
        align: 'center',
        width: 300,
        dataIndex: 'changeReport',
        scopedSlots: { customRender: 'hishost' }
      })
    }
  }else {
    header.push({
      title: '双向评分意见',
      align: 'center',
      width:300,
      dataIndex: 'comments',
      scopedSlots: { customRender: 'scoreComments' },
    })
  }

  return {
    // x 横坐标 | y 竖坐标
    scroll: { x: true },
    columns: header,        // 表头信息
    dataSource: [],         // 表格数据，通过接口拿到，默认空数组
  };
};

function getTotal(arrs) {
  return arrs.reduce((total, obj) => {
    let n = (typeof obj.width === 'number') ? obj.width : 0;
    return total + n;
  }, 0)
}

const monthArr = () => {
  return ['m01', 'm02', 'm03', 'm04', 'm05', 'm06', 'm07', 'm08', 'm09', 'm10', 'm11', 'm12'];
}




export { tableConfig, tableReference, tableKpiScore, monthArr,tableScoreModel};
